/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rultax.neural.genetic;

import java.util.concurrent.Callable;

/**
 *
 * @author Scott
 */
public class MateWorker<CHROMOSOME_TYPE extends Chromosome<?,?>> implements
        Callable<Integer>{

    private final CHROMOSOME_TYPE mother;
    private final CHROMOSOME_TYPE father;
    private final CHROMOSOME_TYPE child1;
    private final CHROMOSOME_TYPE child2;
    
    public MateWorker(final CHROMOSOME_TYPE mother, final CHROMOSOME_TYPE father,
            final CHROMOSOME_TYPE child1, final CHROMOSOME_TYPE child2){
        this.mother = mother;
        this.father = father;
        this.child1 = child1;
        this.child2 = child2;
    }
    
    @Override
    public Integer call() throws Exception{
        mother.mate((Chromosome)father, (Chromosome)child1, (Chromosome)child2);
        return null;
    }
    
}
